﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="XAFBODSchema" targetNamespace="http://schemas.microsoft.com/dsltools/XAFBOD" elementFormDefault="qualified" xmlns="http://schemas.microsoft.com/dsltools/XAFBOD" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <!-- DomainModel -->
  <xsd:element name="domainModel" type="DomainModel" />
  <xsd:complexType name="DomainModel">
    <xsd:annotation>
      <xsd:documentation>The root in which all other elements are embedded. Appears as a diagram.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Relationship: DomainModelHasObjects -->
      <xsd:element name="objects" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainModelHasObjects</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="domainModelHasObjects">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from DomainModelHasObjects needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="domainObject" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!-- Relationship: DomainModelHasComments -->
      <xsd:element name="comments" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainModelHasComments</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="domainModelHasComments">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from DomainModelHasComments needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="domainComment" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!-- Relationship: DomainModelHasUserContexts -->
      <xsd:element name="userContexts" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainModelHasUserContexts</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="domainModelHasUserContexts">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from DomainModelHasUserContexts needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="domainUserContext" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!-- Relationship: DomainModelHasRequirements -->
      <xsd:element name="requirements" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainModelHasRequirements</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="domainModelHasRequirements">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from DomainModelHasRequirements needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="domainRequirement" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <!-- Id -->
    <xsd:attribute name="Id" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <!-- dslVersion -->
    <xsd:attribute name="dslVersion" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>Version of the model serialized in this file.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <!-- Property: WindowsApplication -->
    <xsd:attribute name="windowsApplication" type="xsd:string" />
    <!-- Property: WebApplication -->
    <xsd:attribute name="webApplication" type="xsd:string" />
    <!-- Property: DatabaseName -->
    <xsd:attribute name="databaseName" type="xsd:string" />
  </xsd:complexType>
  
  <!-- DomainModel Moniker -->
  <xsd:element name="domainModelMoniker" type="DomainModelMoniker" />
  <xsd:complexType name="DomainModelMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainModel instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="Id" type="xsd:string" >
      <xsd:annotation>
        <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- DomainObject -->
  <xsd:element name="domainObject" type="DomainObject" />
  <xsd:complexType name="DomainObject">
    <xsd:annotation>
      <xsd:documentation>Elements embedded in the model. Appear as boxes on the diagram.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Relationship: DomainObjectReferencesTargets -->
      <xsd:element name="targets" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainObjectReferencesTargets</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element ref="domainObjectReferencesTargets" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>[Instance of DomainObjectReferencesTargets needs to be serialized in full-form]</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!-- Relationship: DomainObjectHasProperties -->
      <xsd:element name="properties" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainObjectHasProperties</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="domainObjectHasProperties">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from DomainObjectHasProperties needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="domainProperty" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!-- Relationship: DomainObjectReferencesComments -->
      <xsd:element name="comments" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainObjectReferencesComments</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="domainObjectReferencesComments">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from DomainObjectReferencesComments needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="domainCommentMoniker" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!-- Relationship: DomainObjectReferencesRequirements -->
      <xsd:element name="requirements" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainObjectReferencesRequirements</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="domainObjectReferencesRequirements">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from DomainObjectReferencesRequirements needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="domainRequirementMoniker" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <!-- Property: Name -->
    <xsd:attribute name="name" type="xsd:string" use="required" />
    <!-- Property: BaseType -->
    <xsd:attribute name="baseType" type="xsd:string" />
    <!-- Property: TableName -->
    <xsd:attribute name="tableName" type="xsd:string" />
    <!-- Property: IsCreatable -->
    <xsd:attribute name="isCreatable" type="xsd:boolean" />
    <!-- Property: IsNavigational -->
    <xsd:attribute name="isNavigational" type="xsd:boolean" />
    <!-- Property: ImageName -->
    <xsd:attribute name="imageName" type="xsd:string" />
    <!-- Property: ListViewFilters -->
    <xsd:attribute name="listViewFilters" type="xsd:string" />
    <!-- Property: DetailViewItemName -->
    <xsd:attribute name="detailViewItemName" type="xsd:string" />
    <!-- Property: BackColor -->
    <xsd:attribute name="backColor" type="xsd:string" />
    <!-- Property: DefaultPropertyName -->
    <xsd:attribute name="defaultPropertyName" type="xsd:string" />
    <!-- Property: CustomAttributeCode -->
    <xsd:attribute name="customAttributeCode" type="xsd:string" />
  </xsd:complexType>
  
  <!-- DomainObject Moniker -->
  <xsd:element name="domainObjectMoniker" type="DomainObjectMoniker" />
  <xsd:complexType name="DomainObjectMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainObject instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="name" type="xsd:string" >
      <xsd:annotation>
        <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- DomainProperty -->
  <xsd:element name="domainProperty" type="DomainProperty" />
  <xsd:complexType name="DomainProperty">
    <!-- Property: Name -->
    <xsd:attribute name="name" type="xsd:string" />
    <!-- Property: PropertyType -->
    <xsd:attribute name="propertyType" type="xsd:string" />
    <!-- Property: ColumnName -->
    <xsd:attribute name="columnName" type="xsd:string" />
    <!-- Property: IsRequired -->
    <xsd:attribute name="isRequired" type="xsd:boolean" />
    <!-- Property: IsUniqueValue -->
    <xsd:attribute name="isUniqueValue" type="xsd:boolean" />
    <!-- Property: Size -->
    <xsd:attribute name="size" type="xsd:integer" />
    <!-- Property: DisplayFormat -->
    <xsd:attribute name="displayFormat" type="xsd:string" />
    <!-- Property: IsKeyProperty -->
    <xsd:attribute name="isKeyProperty" type="xsd:boolean" />
    <!-- Property: IsAutoGeneratedKey -->
    <xsd:attribute name="isAutoGeneratedKey" type="xsd:boolean" />
    <!-- Property: DisplayName -->
    <xsd:attribute name="displayName" type="xsd:string" />
    <!-- Property: DetailViewItemName -->
    <xsd:attribute name="detailViewItemName" type="xsd:string" />
    <!-- Property: EditMask -->
    <xsd:attribute name="editMask" type="xsd:string" />
    <!-- Property: RuleRequiredMessage -->
    <xsd:attribute name="ruleRequiredMessage" type="xsd:string" />
    <!-- Property: RuleUniqueMessage -->
    <xsd:attribute name="ruleUniqueMessage" type="xsd:string" />
    <!-- Property: CustomAttributeCode -->
    <xsd:attribute name="customAttributeCode" type="xsd:string" />
  </xsd:complexType>
  
  <!-- DomainProperty Moniker -->
  <xsd:element name="domainPropertyMoniker" abstract="true" type="DomainPropertyMoniker" />
  <xsd:complexType name="DomainPropertyMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainProperty instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainComment -->
  <xsd:element name="domainComment" type="DomainComment" />
  <xsd:complexType name="DomainComment">
    <!-- Id -->
    <xsd:attribute name="Id" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <!-- Property: Summary -->
    <xsd:attribute name="summary" type="xsd:string" />
    <!-- Property: Remarks -->
    <xsd:attribute name="remarks" type="xsd:string" />
  </xsd:complexType>
  
  <!-- DomainComment Moniker -->
  <xsd:element name="domainCommentMoniker" type="DomainCommentMoniker" />
  <xsd:complexType name="DomainCommentMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainComment instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="Id" type="xsd:string" >
      <xsd:annotation>
        <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- DomainUserContext -->
  <xsd:element name="domainUserContext" type="DomainUserContext" />
  <xsd:complexType name="DomainUserContext">
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Relationship: DomainUserContextReferencesRequirements -->
      <xsd:element name="requirements" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainUserContextReferencesRequirements</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="domainUserContextReferencesRequirements">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from DomainUserContextReferencesRequirements needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="domainRequirementMoniker" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <!-- Id -->
    <xsd:attribute name="Id" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <!-- Property: Name -->
    <xsd:attribute name="name" type="xsd:string" />
    <!-- Property: LoginName -->
    <xsd:attribute name="loginName" type="xsd:string" />
    <!-- Property: Password -->
    <xsd:attribute name="password" type="xsd:string" />
  </xsd:complexType>
  
  <!-- DomainUserContext Moniker -->
  <xsd:element name="domainUserContextMoniker" type="DomainUserContextMoniker" />
  <xsd:complexType name="DomainUserContextMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainUserContext instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="Id" type="xsd:string" >
      <xsd:annotation>
        <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- DomainRequirement -->
  <xsd:element name="domainRequirement" type="DomainRequirement" />
  <xsd:complexType name="DomainRequirement">
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Relationship: DomainRequirementHasActions -->
      <xsd:element name="actions" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of DomainRequirementHasActions</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="domainRequirementHasActions">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from DomainRequirementHasActions needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="domainRequirementAction" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <!-- Id -->
    <xsd:attribute name="Id" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <!-- Property: Name -->
    <xsd:attribute name="name" type="xsd:string" />
    <!-- Property: Description -->
    <xsd:attribute name="description" type="xsd:string" />
    <!-- Property: IsWindowsTest -->
    <xsd:attribute name="isWindowsTest" type="xsd:boolean" />
    <!-- Property: IsWebTest -->
    <xsd:attribute name="isWebTest" type="xsd:boolean" />
    <!-- Property: ShouldClearDatabase -->
    <xsd:attribute name="shouldClearDatabase" type="xsd:boolean" />
    <!-- Property: ShouldRestoreDatabase -->
    <xsd:attribute name="shouldRestoreDatabase" type="xsd:boolean" />
  </xsd:complexType>
  
  <!-- DomainRequirement Moniker -->
  <xsd:element name="domainRequirementMoniker" type="DomainRequirementMoniker" />
  <xsd:complexType name="DomainRequirementMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainRequirement instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="Id" type="xsd:string" >
      <xsd:annotation>
        <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- DomainRequirementAction -->
  <xsd:element name="domainRequirementAction" type="DomainRequirementAction" />
  <xsd:complexType name="DomainRequirementAction">
    <!-- Property: Name -->
    <xsd:attribute name="name" type="xsd:string" />
    <!-- Property: ShouldSucceed -->
    <xsd:attribute name="shouldSucceed" type="xsd:boolean" />
    <!-- Property: StepAction -->
    <xsd:attribute name="stepAction" type="xsd:string" />
    <!-- Property: CommandParameters -->
    <xsd:attribute name="commandParameters" type="xsd:string" />
    <!-- Property: AdditionalCommands -->
    <xsd:attribute name="additionalCommands" type="xsd:string" />
  </xsd:complexType>
  
  <!-- DomainRequirementAction Moniker -->
  <xsd:element name="domainRequirementActionMoniker" abstract="true" type="DomainRequirementActionMoniker" />
  <xsd:complexType name="DomainRequirementActionMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainRequirementAction instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainModelHasObjects -->
  <xsd:element name="domainModelHasObjects" abstract="true" type="DomainModelHasObjects" />
  <xsd:complexType name="DomainModelHasObjects" abstract="true" >
    <xsd:annotation>
      <xsd:documentation>Embedding relationship between the Model and Elements</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainObject -->
      <xsd:element ref="domainObject" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- DomainModelHasObjects Moniker -->
  <xsd:element name="domainModelHasObjectsMoniker" abstract="true" type="DomainModelHasObjectsMoniker" />
  <xsd:complexType name="DomainModelHasObjectsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainModelHasObjects instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainObjectReferencesTargets -->
  <xsd:element name="domainObjectReferencesTargets" type="DomainObjectReferencesTargets" />
  <xsd:complexType name="DomainObjectReferencesTargets">
    <xsd:annotation>
      <xsd:documentation>Reference relationship between Elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainObject -->
      <xsd:element ref="domainObjectMoniker" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <!-- Property: IsManyToMany -->
    <xsd:attribute name="isManyToMany" type="xsd:boolean" />
    <!-- Property: TargetName -->
    <xsd:attribute name="targetName" type="xsd:string" />
    <!-- Property: SourceName -->
    <xsd:attribute name="sourceName" type="xsd:string" />
    <!-- Property: IsAggregated -->
    <xsd:attribute name="isAggregated" type="xsd:boolean" />
    <!-- Property: DisplayManyText -->
    <xsd:attribute name="displayManyText" type="xsd:string" />
    <!-- Property: DisplayOneText -->
    <xsd:attribute name="displayOneText" type="xsd:string" />
  </xsd:complexType>
  
  <!-- DomainObjectReferencesTargets Moniker -->
  <xsd:element name="domainObjectReferencesTargetsMoniker" abstract="true" type="DomainObjectReferencesTargetsMoniker" />
  <xsd:complexType name="DomainObjectReferencesTargetsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainObjectReferencesTargets instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainObjectHasProperties -->
  <xsd:element name="domainObjectHasProperties" abstract="true" type="DomainObjectHasProperties" />
  <xsd:complexType name="DomainObjectHasProperties" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainProperty -->
      <xsd:element ref="domainProperty" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- DomainObjectHasProperties Moniker -->
  <xsd:element name="domainObjectHasPropertiesMoniker" abstract="true" type="DomainObjectHasPropertiesMoniker" />
  <xsd:complexType name="DomainObjectHasPropertiesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainObjectHasProperties instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainModelHasComments -->
  <xsd:element name="domainModelHasComments" abstract="true" type="DomainModelHasComments" />
  <xsd:complexType name="DomainModelHasComments" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainComment -->
      <xsd:element ref="domainComment" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- DomainModelHasComments Moniker -->
  <xsd:element name="domainModelHasCommentsMoniker" abstract="true" type="DomainModelHasCommentsMoniker" />
  <xsd:complexType name="DomainModelHasCommentsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainModelHasComments instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainObjectReferencesComments -->
  <xsd:element name="domainObjectReferencesComments" abstract="true" type="DomainObjectReferencesComments" />
  <xsd:complexType name="DomainObjectReferencesComments" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainComment -->
      <xsd:element ref="domainCommentMoniker" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- DomainObjectReferencesComments Moniker -->
  <xsd:element name="domainObjectReferencesCommentsMoniker" abstract="true" type="DomainObjectReferencesCommentsMoniker" />
  <xsd:complexType name="DomainObjectReferencesCommentsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainObjectReferencesComments instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainModelHasUserContexts -->
  <xsd:element name="domainModelHasUserContexts" abstract="true" type="DomainModelHasUserContexts" />
  <xsd:complexType name="DomainModelHasUserContexts" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainUserContext -->
      <xsd:element ref="domainUserContext" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- DomainModelHasUserContexts Moniker -->
  <xsd:element name="domainModelHasUserContextsMoniker" abstract="true" type="DomainModelHasUserContextsMoniker" />
  <xsd:complexType name="DomainModelHasUserContextsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainModelHasUserContexts instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainModelHasRequirements -->
  <xsd:element name="domainModelHasRequirements" abstract="true" type="DomainModelHasRequirements" />
  <xsd:complexType name="DomainModelHasRequirements" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainRequirement -->
      <xsd:element ref="domainRequirement" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- DomainModelHasRequirements Moniker -->
  <xsd:element name="domainModelHasRequirementsMoniker" abstract="true" type="DomainModelHasRequirementsMoniker" />
  <xsd:complexType name="DomainModelHasRequirementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainModelHasRequirements instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainRequirementHasActions -->
  <xsd:element name="domainRequirementHasActions" abstract="true" type="DomainRequirementHasActions" />
  <xsd:complexType name="DomainRequirementHasActions" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainRequirementAction -->
      <xsd:element ref="domainRequirementAction" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- DomainRequirementHasActions Moniker -->
  <xsd:element name="domainRequirementHasActionsMoniker" abstract="true" type="DomainRequirementHasActionsMoniker" />
  <xsd:complexType name="DomainRequirementHasActionsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainRequirementHasActions instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainUserContextReferencesRequirements -->
  <xsd:element name="domainUserContextReferencesRequirements" abstract="true" type="DomainUserContextReferencesRequirements" />
  <xsd:complexType name="DomainUserContextReferencesRequirements" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainRequirement -->
      <xsd:element ref="domainRequirementMoniker" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- DomainUserContextReferencesRequirements Moniker -->
  <xsd:element name="domainUserContextReferencesRequirementsMoniker" abstract="true" type="DomainUserContextReferencesRequirementsMoniker" />
  <xsd:complexType name="DomainUserContextReferencesRequirementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainUserContextReferencesRequirements instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- DomainObjectReferencesRequirements -->
  <xsd:element name="domainObjectReferencesRequirements" abstract="true" type="DomainObjectReferencesRequirements" />
  <xsd:complexType name="DomainObjectReferencesRequirements" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end DomainRequirement -->
      <xsd:element ref="domainRequirementMoniker" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- DomainObjectReferencesRequirements Moniker -->
  <xsd:element name="domainObjectReferencesRequirementsMoniker" abstract="true" type="DomainObjectReferencesRequirementsMoniker" />
  <xsd:complexType name="DomainObjectReferencesRequirementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainObjectReferencesRequirements instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
</xsd:schema>

